System and method for closed loop controlled inspired oxygen concentration

ABSTRACT

A system and method for delivering fractionally inspired oxygen (FiO 2 ) to a patient in response to receiving an arterial hemoglobin oxygen saturation signal (SpO 2 ) are disclosed. The SpO 2  is measured, for example, by using a pulse oximeter. An algorithm receives a signal indicating the SpO 2 . The algorithm determines wither the SpO 2  is in the normoxemia range, hypoxemia range or hyperoxemia range. The algorithm also determines trends by calculating a slope of second-to-second changes in the SpO 2 . Based on the current SpO 2  and the trend, the algorithm determines the appropriate FiO 2  for the patient and instructs a device, such as a mechanical ventilator or an air oxygen mixer as to the appropriate FiO 2  to be delivered to the patient. The system initializes various parameters with default values, but a user (e.g., a nurse) can also update the settings at any time. The system also provides alerts for various conditions, for example, standard pulse oximeter alarms, as well as notification when an episode of hyperoxemia or hypoxemia occurs, when it lasts for more than a specified period of time (e.g., two minutes) in spite of FiO 2  adjustments and when the adjustments set the FiO 2  at certain levels. The user is also alerted when SpO 2  signal is lost.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a division application of U.S. patent applicationSer. No. 09/735,319 filed Dec. 12, 2000 now U.S. Pat. No. 6,512,938.

STATEMENT RE: FEDERALLY SPONSORED RESEARCH/DEVELOPMENT

(Not Applicable)

BACKGROUND OF THE INVENTION

The present invention relates generally to oxygen delivery systems andmore particularly to a closed loop system and method for automaticallydelivering fractionally inspired oxygen (FiO₂).

Very low birth weight infants often present with episodes of hypoxemia.These episodes are detected by arterial oxygen saturation monitoring bypulse oximetry (SpO₂) and are usually assisted with a transient increasein the fraction of inspired oxygen (FiO₂).

Given the rapid onset and frequency at which most of these episodes ofhypoxemia occur, maintaining SpO₂ within a normal range by manual FiO₂adjustment during each episode is a difficult and time-consuming task.Nurses and respiratory therapists respond to high/low SpO₂ alarms. Underroutine clinical conditions, the response time is variable and the FiO₂adjustment is not well defined. This exposes the infants to periods ofhypoxemia and hyperoxemia which may increase the risk of neonatalchronic lung disease and retinopathy of prematurity.

Thus, a need exists for a system that can automatically adjust FiO₂.Prior art systems exist which automatically adjusts FiO₂. Such systemshave had positive results. However, existing systems fail to respond torapid SpO₂ changes and require manual intervention. Thus, a need existsfor an automated system for adjusting FiO₂ which will respond to rapidSpO₂ changes. The system should not require manual intervention, butshould allow for manual intervention, if desired. The system should alsoallow for gradually weaning the FiO₂ as soon as an episode begins toresolve.

BRIEF SUMMARY OF THE INVENTION

In accordance with the present invention, a system is provided fordelivering fractionally inspired oxygen (FiO₂) to a patient. The systemincludes a device, such as a pulse oximeter, for obtaining an arterialhemoglobin oxygen saturation signal (SpO₂). An algorithm uses the SpO₃to determine the appropriate FiO₂ to deliver to the patient. Thealgorithm adjusts the FiO₂ level of an air-oxygen mixer of an oxygendelivery device, such as a mechanical ventilator.

In accordance with other aspects of the invention, SpO₂ levels,including a target (normoxemia) range, are defined. SpO₂ values abovethe normoxemia range are considered to be hyperoxemic and values belowthe normoxemia range are considered to be hypoxemic.

In accordance with further aspects of the invention, a determination ismade as to whether the SpO₂ signal is a valid signal. If the SpO₂ signalis not a valid signal, the FiO₂ to be delivered to the patient isdetermined based on a backup value. If the SpO₂ signal is a valid signaland closed loop mode is not enabled, the FiO₂ to be delivered to thepatient is determined based on a backup value. If the signal is validand closed loop mode is enabled, the FiO₂ to be delivered to the patientis determined based on the current SpO₂ and the trend. The trend isdetermined by calculating a slope using previous SpO₂ values. Thedetermined FiO₂ is then delivered to the patient, for example, using aventilator or an air-oxygen gas mixer.

In accordance with still further aspects of the invention, a userinterface is provided. The user interface displays status information.The user interface also displays alerts. The user interface can also beused to view and modify user settings/parameters.

BRIEF DESCRIPTION OF THE DRAWINGS

These, as well as other features of the present invention, will becomemore apparent upon reference to the drawings wherein:

FIG. 1 is a block diagram of a prior art system for manually adjustingthe fraction of inspired oxygen (FiO₂);

FIG. 2 is a block diagram of a system for automatically adjusting FiO₂in accordance with the present invention;

FIG. 3 is a flow diagram illustrating exemplary logic for automaticallyadjusting FiO₂ in accordance with the present invention;

FIG. 4 is a table of exemplary variables and defaults values used in thepresent invention;

FIG. 5 is a table of exemplary user settings and default values used inthe present invention;

FIG. 6 is flow diagram illustrating exemplary logic for performing acontrol cycle as shown in FIG. 3;

FIG. 7 is a flow diagram illustrating exemplary logic for performingbackup processing when a valid SpO₂ signal is not received as shown inFIG. 6;

FIGS. 8-20 are a flow diagram illustrating exemplary logic forprocessing a valid SpO₂ signal as shown in FIG. 6; and

FIG. 21 is an exemplary graphical user interface illustrating SpO₂ andFiO₂ values over a specified period of time.

DETAILED DESCRIPTION OF THE INVENTION

Traditionally, as shown in FIG. 1, a device, such as a pulse oximeter50, is used to determine arterial hemoglobin oxygen saturation of apatient 60. A nurse 70 monitors the pulse oximeter 50. The nurse 70adjusts the fractionally inspired oxygen (FiO₂) delivered to the patient60 using a mechanical ventilator or air-oxygen mixer 80. Typically,ventilator device 80 mixes pure oxygen with air to give the patient amixture of air having a percentage of oxygen. For example, a ventilator80 may deliver a 90% oxygen/10% air mixture to the patient 60. The exactmixture of air required varies among patients and can vary for a givenpatient over a period of time. When a patient receives too much oxygen,a condition known as hyperoxemia occurs and if a patient does notreceive enough oxygen, a condition known as hypoxemia occurs.“Normoxemia” occurs if the proper amount of oxygen is delivered (i.e.,neither hyperoxemia nor hypoxemia occurs). A traditional system, such asthe one shown in FIG. 1, is an “open system” because it requires humanintervention (e.g., by a nurse 70).

As shown in FIG. 2, the present invention is a “closed system” whichuses an algorithm 90 (described in detail below) to deliver FiO₂ inresponse to receiving an arterial hemoglobin oxygen saturation signal(SpO₂). In exemplary embodiments of the invention, the algorithmacquires information on arterial oxygen-hemoglobin oxygen saturation(SpO₂) measured by a pulse oximeter 50 and uses this measurement asinput to determine the adjustment required, if any, to the fractionallyinspired oxygen concentration (FiO₂) delivered to a patient on acontinuous basis via a ventilator 80. It will be appreciated that thealgorithm described herein can be applied to various modes of oxygendelivery, for example, mechanical ventilators, oxy-hood, nasal cannulas,and/or Continuous Positive Airway Pressure (CPAP) systems or incubators.The delay between the new FiO₂ setting and the actual oxygenconcentration change is important. In most oxygen delivery modes thedelay is relatively short (e.g., less than 15 seconds). However, thereare significantly longer delays in large hoods or incubators. Theclosed-loop control system of the present invention is capable ofchanging the inspired gas concentration fast enough to follow rapid andfrequent hypoxemic episodes. In exemplary embodiments of the presentinvention, SpO₂ is read from the analog output of a pulse oximeter.However, alternative embodiments allow for reading from other outputs,e.g., from any serial output.

Even though the invention does not require human intervention, manualadjustments and overrides can be performed. The system described hereinis ideally suited for patients who are very low birth weight infants.However, it will be appreciated that the present invention is not solimited. The invention can be used for patients of all ages.

The present invention includes an algorithm 90 that continuouslyacquires the patient's SpO₂ information and adjusts the FiO₂ deliveredto the patient (e.g., via a mechanical ventilator 80) to maintain SpO₂within a specific range set by a user (e.g., a nurse). In exemplaryembodiments, the algorithm 90 calculates and adjusts the FiO₂ once persecond on a “closed loop” basis using a direct electronic interfacebetween the algorithm 90 and the ventilator's air-oxygen blendercontrol.

The algorithm 90 defines SpO₂ ranges based on a user-defined targetrange of normoxemia. Hyperoxemia is assumed to occur when SpO₂ exceedsthe normoxemia target range and hypoxemia is assumed to occur when SpO₂falls below the normoxemia target range. The differential controlfeedback functions are used to deal with the patient variability changesin FiO₂ which in combination with the algorithm's rules modulate themagnitude and timing of FiO₂ adjustments during periods of normoxemia orduring a hypoxemic or hyperoxemic episode. The factors used to determinethe adjustments are the current SpO₂ level, direction and rate of SpO₂change, degree and duration of the hypoxemic or hyperoxemic episode,current FiO₂ setting, and the individual patient's basal FiO₂requirement during normoxemia.

FiO₂ adjustments during hyperoxemia and normoxemia are of smallermagnitude and slower pace than those occurring during hypoxemia.However, the rules and control functions in the algorithm are designedto enable the algorithm to modify its responses to changing conditions,from slow and subtle SpO₂ changes during periods of stability to rapidlyfalling SpO₂ during an acute period of hypoxemia.

The algorithm 90 also has a backup function in the event that there ismissing SpO₂ information. The backup function locks the FiO₂ after ashort wait period at a back-up level preset by the user or at thecurrent FiO₂ level, whichever is higher until SpO₂ information isavailable again.

In addition to the standard pulse oximeter alarms, the algorithm alertsthe user when an episode of hyperoxemia or hypoxemia occurs, when itlasts for more than a specified period of time (e.g., two minutes) inspite of FiO₂ adjustments, and when the adjustments set the FiO₂ atcertain levels for example, a low level of 0.21 (room air) and a highlevel of 1.0 (pure oxygen). The user is also alerted when SpO₂ signal islost. These alerts are intended to notify the user (e.g., nurse) toverify proper function of the SpO₂ measurement, FiO₂ delivery andcommunication links.

FIG. 3 is a flow diagram illustrating exemplary logic performed byalgorithm 90. The algorithm classifies SpO₂ according to ranges set bythe user. The user sets a target range for normoxemia (e.g., anexemplary default range is 88%-96%). An SpO₂ above the range fornormoxemia (e.g., greater than 96%) is considered hyperoxemic. An SpO₂below the range for normoxemia (e.g., less than 88%) is consideredhypoxemic. Because of its importance, hypoxemia is further subdivided.In exemplary embodiments, hypoxemia is further subdivided into thefollowing ranges: less than 75%; 75-85%; and 85% to the low limit of thetarget range, (for example, using the exemplary default range, 85%-88%).FiO₂ is adjusted based on the current SpO₂, the SpO₂ trend and the timethat SpO₂ has been within the range, as well as basal and current FiO₂settings.

The logic of FIG. 3 moves from a start block to block 100 where systemdefaults are set. Various system defaults or parameters, such as thoseshown in the table of FIG. 4 are preset. The parameters (variables) inTable 4 are described in further detail later. These variables can bemodified by the application and/or by the user.

After system defaults are set, the logic of FIG. 3 moves to block 102where a user interface is displayed. An exemplary user interface isillustrated in FIG. 21 and described later.

The logic of FIG. 3 then moves to block 104 where user settings areread. User settings, such as those shown in FIG. 5, should be set priorto commencement of the closed loop execution (i.e., prior to enteringthe control cycle). Preferably, the settings can also be set or modifiedduring execution of the algorithm. Preferably, a suitable user interface(such as the one shown in FIG. 21) is provided to allow the user toset/modify these values. Although the user can set/modify these values,preferably system defaults (such as those shown in FIG. 5) are provided.

In exemplary embodiments of the invention SpO₂ Target Range High Limitand SpO₂ Target Range Low Limit define the patient's desired targetrange. In the exemplary embodiment shown in FIG. 5, SpO₂ Target RangeLow Limit must be in the range between 85%-94% and has a default valueof 88% and SpO₂ Target Range High Limit must be in the range between94%-100% and has a default value of 96%. Thus, the default target rangeis 88%-96%.

FiO₂ Base is the patient's basal oxygen requirement to maintain normalSpO₂. FiO₂ Base can be kept fixed at the user setting or automaticallyadjusted by the algorithm to changes in the basal oxygen needs. FiO₂Base is also the initial level for FiO₂ Set when closed loop is switchedON. The default setting for FiO₂ Base can alternatively be obtained fromthe user setting during manual (normal) mode used before closed loop isON. In the exemplary embodiment shown in FIG. 5, FiO₂ Base must be inthe range between 21%-60% and has a default value of 30%.

FiO₂ Backup is the default value for FiO₂ Set when the system isstarted, when SpO₂ Signal is OUT or when closed-loop switch is OFF. FiO₂Backup should not be lower than the basal (FiO₂ Base). In the exemplaryembodiment shown in FIG. 5, FiO₂ Backup must be in the range between21%-100% and has a default value of 40%.

FiO₂ Min is the minimum level at which FiO₂ Set, FiO₂ Base and FiO₂Backup can be set. In the exemplary embodiment shown in FIG. 5, FiO₂ Minhas a default value of 21% (room air).

FiO₂ Max (not shown in FIG. 5) is a default parameter. For example, FiO₂Max is initially set at a default of 100% (pure oxygen), but can be userselectable.

After the user settings are read, the logic of FIG. 3 proceeds to block106 where a control cycle is performed as shown in FIG. 6 and describedin detail next. The control cycle is initiated when the user switchesclosed-loop to ON. If closed-loop is set to OFF, the control cycle loopcontinues, but FiO₂ Set is returned to the FiO₂ Backup level. FiO₂ Setis the actual parameter set at the air-oxygen mixer.

FIG. 6 is a flow diagram illustrating exemplary logic for performing acontrol cycle in accordance with the present invention. The logic movesfrom a start block to block 200 where SpO₂ (e.g., SpO₂ output signalfrom pulse oximeter 50) is read. The SpO₂ that is read is stored as SpO₂Read. Next, the logic moves to decision block 202 where a test is madeto determine if SpO₂ Read is within the acceptable SpO₂ range. Forexample, as shown in FIG. 4, in exemplary embodiments, the default rangeis between 20 and 100%. If SpO₂ Read is not within the acceptable range(no in decision block 202), the logic moves to block 204 where SpO₂signal OUT processing is performed as shown in FIG. 7 and describedbelow. Most oximeters provide a 0% reading when signal is OUT whencommunication between the oximeter and algorithm is by means of theanalog output of the pulse oximeter. Alternatively, if serialcommunication exists between the oximeter and the algorithm, SpO₂information can be monitored by proper communication handshake. If SpO₂is within the SpO₂ OK range (yes in decision block 202), the logic movesto block 206 where SpO₂ Signal OK processing is performed as shown indetail in FIG. 8 and described later. After SpO₂ signal OUT processinghas been performed (block 204) or SpO₂ OK processing has been performed(block 206), the logic moves to block 208 to monitor whether usersettings have been changed. Preferably, the user can change varioussettings at any time. If user settings have been changed, variables areupdated accordingly. The logic then returns to block 200 where SpO₂ isread and processed again. In exemplary embodiments, SpO₂ is read andprocessed (e.g., FiO₂ adjusted accordingly) every second. Thus, the SpO₂is continuously monitored every second until the system is shut off.

FIG. 7 illustrates exemplary logic for performing SpO₂ Signal OUT (e.g.,backup mode) processing in accordance with the present invention. Inbackup mode processing, FiO₂ Set (i.e., the actual parameter set at theair-oxygen mixer) is locked at the FiO₂ Backup level, at the FiO₂ Baselevel or at the current level (whichever is higher) until feedbackinformation is available again.

The logic of FIG. 7 moves from a start block to block 220 where the useris alerted and the cause is checked. There are various reason why apulse oximeter may fail to provide information, for example, poor signalquality during motion or low perfusion (or both), a loose probe or aprobe no longer in place, or a break on the communication link betweenthe oximeter and the algorithm 90. Next, the logic moves to block 222where SpO₂ Out Counter is incremented. SpO₂ Out Counter is used toconfirm that signal loss is not related to some type of temporaryvariability or error. Only after a minimum interval has passed is SpO₂Signal OK Counter reset. This allows activities to resume normally ifthere was a short drop-out period. Next, the logic moves to decisionblock 224 where a test is made to determine if SpO₂ Out Counter is equalto SpO₂ Time to Zero Counters. If so, the logic moves to block 226 whereSpO₂ OK Counter is set to zero. For example, in the exemplary embodimentshown in FIG. 4, the default value is ten seconds. Thus, if SpO₂ OutCounter is equal to ten, SpO₂ OK Counter will be reset to zero. Theillustrated embodiment assumes that SpO₂ is read and processed once asecond. However, it will be appreciated that the algorithm can bemodified to accommodate reading and processing SpO₂ values at adifferent interval.

Next, the logic moves to decision block 228 where a test is made todetermine if SpO₂ Out Counter has been set for the last five seconds(e.g., SpO₂ Out Counter is greater than or equal to five). While thelogic illustrated is based on a lost SpO₂ signal for five consecutiveseconds, it will be appreciated that other time periods can be used.Preferably, the default value can be modified by the user. A short waitwill provide early additional oxygen if hypoxemia is accompanied bymotion of the extremities (which is often observed), whereas a longerwait will generally apply to cases where hypoxemia is not frequent andsignal loss is not accompanied by hypoxemia. If SpO₂ has not been setfor the specified period of time (e.g., five seconds), the logic of FIG.7 ends.

If, however, SpO₂ has been lost (OUT) for the last five seconds or otherspecified period of time (yes in decision block 228), the logic moves toblock 230 where FiO₂ Set Last Before Signal Lost is set to FiO₂ Set.When FiO₂ is set to the backup level, the algorithm stores the last FiO₂value in memory. This FiO₂ Set Last Before Signal Lost value is usedunder some conditions to set FiO₂ as soon as SpO₂ is available again.Next, the logic moves to decision block 232 where a test is made todetermine if FiO₂ Backup is greater than or equal to FiO₂ Base. If so,the logic moves to decision block 234 where a test is made to determineif FiO₂ Set is less than FiO₂ Backup. If so, the logic moves to block236 where FiO₂ Set is set to FiO₂ Backup. The logic of FIG. 7 then endsand processing returns to FIG. 6.

If FiO₂ Backup is less than FiO₂ Base (no in decision block 232), thelogic moves to decision block 238 where a test is made to determine ifFiO₂ Set is less than FiO₂ Base. If so, the logic moves to block 240where FiO₂ Set is set to FiO₂ Base. If not, FiO₂ set does not getchanged. The logic of FIG. 7 then ends and processing returns to FIG. 6.

FIG. 8 illustrates exemplary logic for performing SpO₂ Signal OKprocessing in accordance with the present invention. The counters oftime spent with SpO₂ within each range are updated continuously. Thesecounters are used to classify and confirm the actual SpO₂ level(normoxemia, hyperoxemia or hypoxemia) and discriminate against shortvariability. Only after a minimum time has elapsed since SpO₂ hasreached any specific range is it considered to be a new SpO₂ level. Inthe exemplary embodiment illustrated in FIG. 4, the default time periodbefore being considered a new level defaults to three seconds (SpO₂ Timein High Norm Low Range Min). This short interval can be affected byshort variability, therefore, other counters for previous SpO₂ rangesare reset only after a longer interval (SpO₂ Time to Zero Counters,which defaults to ten seconds in the exemplary embodiment shown in FIG.4) has elapsed. In this way, SpO₂ Read is confirmed to be out of anyspecific range only after the longer time period (e.g., ten seconds)SpO₂ Read is confirmed to be in the new range after three seconds (orwhatever value SpO₂ Time in High Norm Low Range Min is set to) but it isconfirmed to be out of the previous range only after ten seconds (orwhatever value Time to Zero Counters is set to). In this way, if SpO₂Read returns shortly after to the previous range, all activities in thatrange will resume immediately.

The logic of FIG. 8 moves from a start block to block 250 where SpO₂ OKCounter is incremented. Next, the logic moves to decision block 252where a test is made to determine if SpO₂ OK Counter is equal to SpO₂Time to Zero Counters. If so, the logic moves to block 254 where SpO₂Out Counter is set to zero. Next, appropriate timing processing isperformed based on SpO₂ Read. If SpO₂ Read is in the target range fornormoxemia, for example, 88%-96%, (yes in decision block 256), the logicmoves to block 258 where normoxemia timing is performed as shown indetail in FIG. 9 and described next.

FIG. 9 illustrates exemplary logic for performing normoxemia timing inaccordance with the present invention. As shown in FIG. 9, and describedbelow, normoxemia is considered the new SpO₂ level only after aspecified period of time (e.g., three seconds) has elapsed since SpO₂entered the target range, however, counters for other SpO₂ ranges arereset only after a longer interval (e.g., ten seconds) has elapsed. Thelogic of FIG. 9 moves from a start block to block 300 where SpO₂Normoxemia Counter is incremented. Next, the logic moves to decisionblock 302 where a test is made to determine if SpO₂ Normoxemia Counteris greater than or equal to SpO₂ Min Time in Range (SpO₂ Time in HighNorm Low Range, e.g., three seconds). If so, the logic moves to decisionblock 304 where a test is made to determine if SpO₂ Normoxemia Counteris equal to SpO₂ Min Time in Range. If so, the logic moves to block 306where SpO₂ Previous Level is set to SpO₂ Level. Regardless of theoutcome of decision block 304, the logic proceeds to block 308 whereSpO₂ Level is set to Normoxemia. Regardless of the outcome of decisionblock 302, the logic moves to decision block 310 where a test is made todetermine if SpO₂ Normoxemia Counter is greater than SpO₂ Time to ZeroCounters. If so, the logic moves to block 312 where counters (SpO₂Hyperoxemia Counter, SpO₂ Hypoxemia Counter, SpO₂ Hypoxemia 85-Low LimitCounter, SpO₂ Hypoxemia 75-85 Counter and SpO₂ Hypoxemia less than 75Counter) are set to zero. The logic of FIG. 9 then ends and processingreturns to FIG. 8.

Returning to FIG. 8, if SpO₂ Read is greater than the target range (yesin decision block 260), the logic moves to block 262 where hyperoxemiatiming is performed as shown in detail in FIG. 10 and described next.

FIG. 10 illustrates exemplary logic for performing hyperoxemia timing inaccordance with the present invention. As shown in FIG. 10 and describedbelow, hyperoxemia is considered the new SpO₂ level only after aspecified period of time (e.g., three seconds) has elapsed since SpO₂entered the hyperoxemia range, however, counters for other SpO₂ rangesare reset only after a longer interval (e.g., ten seconds) has elapsed.The logic of FIG. 10 moves from a start block to block 320 where SpO₂Hyperoxemia Counter is incremented. Next, the logic moves to decisionblock 322 where a test is made to determine if SpO₂ Hyperoxemia Counteris greater than or equal to SpO₂ Min Time in Range. If so, the logicmoves to decision block 324 where a test is made to determine if SpO₂Hyperoxemia Counter is equal to the SpO₂ Min Time in Range. If so, thelogic moves to block 326 where SpO₂ Previous Level is set to SpO₂ Level.Regardless of the outcome of decision block 324, the logic proceeds toblock 328 where SpO₂ Level is set to Hyperoxemia. Regardless of theoutcome of decision block 322, the logic moves to decision block 330where a test is made to determine if SpO₂ Hyperoxemia Counter is greaterthan SpO₂ Time to Zero Counters. If so, the logic moves to block 332where counters (SpO₂ Normoxemia Counter, SpO₂ Hypoxemia Counter, SpO₂Hypoxemia 85-Low Limit Counter, SpO₂ Hypoxemia 75-85 Counter and SpO₂Hypoxemia less than 75 Counter) are set to zero. The logic of FIG. 10then ends and processing returns to FIG. 8.

Returning to FIG. 8, if SpO₂ Read is less than the target range (yes indecision block 264), the logic moves to block 266 where hypoxemia timingis performed as shown in detail in FIG. 11 and described next.

FIG. 11 illustrates exemplary logic for performing hypoxemia timing inaccordance with the present invention. As shown in FIG. 11, anddescribed below, hypoxemia is considered the new SpO₂ level only after aspecified period of time (e.g., three seconds) has elapsed since SpO₂entered the hypoxemia range, however, counters for other SpO₂ ranges arereset only after a longer interval (e.g., ten seconds) has elapsed. Thelogic of FIG. 11 moves from a start block to block 340 where SpO₂Hypoxemia Counter is incremented. Next, the logic moves to decisionblock 342 where a test is made to determine if SpO₂ Hypoxemia Counter isgreater than or equal to SpO₂ Min Time in Range. If so, the logic movesto decision block 344 where a test is made to determine if SpO₂Hypoxemia Counter is equal to SpO₂ Min Time in Range. If so, the logicmoves to block 346 where SpO₂ Previous Level is set to SpO₂ Level.Regardless of the outcome of decision block 344, the logic proceeds toblock 348 where SpO₂ Level is set to Hypoxemia. Regardless of theoutcome of decision block 342, the logic of FIG. 11 proceeds to decisionblock 350 where a test is made to determine if SpO₂ Hypoxemia Counter isgreater than SpO₂ Time to Zero Counters. If so, the logic moves to block352 where counters (SpO₂ Normoxemia Counter and SpO₂ HyperoxemiaCounter) are set to zero.

As described above, hypoxemia is subdivided into ranges, for example,less than 75%, 75%-85% and 85% to the low limit for normoxemia.Hypoxemia counters for the various sub-ranges are set based on SpO₂Read, as appropriate. If SpO₂ Read is between 85 and SpO₂ Target RangeLow Limit, for example, using the exemplary default range, between85%-88%, (yes in decision block 354), the logic moves to block 356 whereSpO₂ Hypoxemia 85-Low Limit Counter is incremented. The logic then movesto decision block 358 where a test is made to determine if SpO₂Hypoxemia 85-Low Limit Counter is greater than Time to Zero Counters. Ifso, the logic moves to block 360 where counters (SpO₂ Hypoxemia 75-85Counter and SpO₂ Hypoxemia less than 75 Counter) are set to zero. IfSpO₂ Read is between 75 and 85 (yes in decision block 362), the logicmoves to block 364 where SpO₂ Hypoxemia 75-85 Counter is incremented.The logic then moves to decision block 366 where a test is made todetermine if SpO₂ Hypoxemia 75-85 Counter is greater than SpO₂ Time toZero Counters. If so, the logic moves to block 368 where counters (SpO₂Hypoxemia 85-Low Limit Counter and SpO₂ Hypoxemia less than 75 Counter)are set to zero. If SpO₂ Read is less than 75 (yes in decision block370), the logic moves to block 372 where SpO₂ Hypoxemia less than 75Counter is incremented. The logic then proceeds to decision block 374where a test is made to determine if SpO₂ Hypoxemia less than 75 Counteris greater than SpO₂ Time to Zero Counters. If so, the logic moves toblock 376 where counters (SpO₂ Hypoxemia 85-Low Limit Counter and SpO₂Hypoxemia 75-85 Counter) are set to zero. The logic of FIG. 11 then endsand processing returns to FIG. 8.

Returning to FIG. 8, after appropriate timing processing has beenperformed (e.g., normoxemia timing in block 258, hyperoxemia timing inblock 262 or hypoxemia in block 266), the logic of FIG. 8 moves to block268 where the SpO₂ slope calculation is performed as illustrated indetail in FIG. 12 and described next.

FIG. 12 illustrates exemplary logic for performing the SpO₂ slopecalculation in accordance with the present invention. Since SpO₂ is readand processed every second, the slope is calculated every second. When aslope is calculated, it is calculated based on the current SpO₂ readingand the previous seven consecutive SpO₂ readings. It will be appreciatedthat a value other than seven may be used for the number of previousvalues to use when calculating the slope. All of the readings used incalculating the slope should be within the range where SpO₂ signal isconsidered OK. The slope is the average of the second-to-second SpO₂change. The calculated slope is limited to a specified range. Forexample, in the illustrated embodiment shown in FIG. 4, the rangedefaults to +/−5% per second (SpO₂ Slope High Limit and SpO₂ Slope LowLimit). In various embodiments, multiple slopes can be calculated totrack fast, medium, and slow changes simultaneously. The multiple slopescan then be used at different times within the FiO₂ Set Determinationprocedure (shown in FIG. 14).

The logic of FIG. 12 moves from a start block to decision block 380where a test is made to determine if SpO₂ Signal OK Counter is greaterthan or equal to seven consecutive seconds. If not, the logic moves toblock 382 where SpO₂ Slope is set to zero and the logic of FIG. 12 endsand processing returns to FIG. 8.

If however, SpO₂ Signal OK Counter is greater than or equal to sevenconsecutive seconds (yes in decision block 380), the logic moves toblock 384 where SpO₂ Slope is set to the average of the last sevensecond-to-second SpO₂ changes. Next, logic is performed to ensure thatthe slope is within the allowable limits. If in decision block 386 it isdetermined that SpO₂ Slope is greater then SpO₂ Slope High Limit (e.g.,a change of more than 5%), the logic moves to block 388 where SpO₂ Slopeis set to SpO₂ Slope High limit (e.g., SpO₂ Slope is set to +5%). If itis determined in decision block 390 that SpO₂ Slope is less than SpO₂Slope Low Limit, the logic moves to block 392 where SpO₂ Slope is set toSpO₂ Slope Low Limit (e.g., SpO₂ Slope is set to −5%). The logic of FIG.12 then ends and processing returns to FIG. 8.

Returning to FIG. 8, after the slope has been calculated (block 268),the logic moves to block 270 where FiO₂ Max/Min timing is performed asillustrated in detail in FIG. 13 and described next.

The logic of FIG. 13 illustrates exemplary logic for performing FiO₂Max/Min timing in accordance with the present invention. The algorithmmonitors the actual value for FiO₂ Set by counting the time at themaximum and minimum FiO₂ limits. If FiO₂ has been continuously at themaximum limit longer that FiO₂ Max Alarm Interval, the user is alerted.The time in FiO₂ max and min is also used later for calculation of FiO₂Base (FIG. 18).

The logic of FIG. 13 moves from a start block to decision block 400where a test is made to determine if FiO₂ Set is equal to FiO₂ Min. Ifnot, the logic moves to block 402 where FiO₂ Min Counter is set to zero.If so, the logic moves to block 404 where FiO₂ Min Counter isincremented. Next, the logic moves to decision block 406 where a test ismade to determine if FiO₂ Set is equal to FiO₂ Max. If not, the logicmoves to block 408 where FiO₂ Max Counter is set to zero and the logicof FIG. 13 ends and processing returns to FIG. 8.

If, however, FiO₂ Set is not equal to FiO₂ Max, the logic moves fromdecision block 406 to block 410 where FiO₂ Max Counter is incremented.The logic then moves to block 412 where the user is alerted if it (FiO₂Max Counter) is greater than 60 seconds. It will be appreciated that thetime may be set to some value other than 60 seconds in variousembodiments. The logic of FIG. 13 then ends and processing returns toFIG. 8.

Returning to FIG. 8, after FiO₂ Max/Min timing has been performed, thelogic moves to decision block 272 where a test is made to determine ifclosed-loop control is enabled. If so, the logic moves to block 273where FiO₂ Set Determination is performed as illustrated in detail inFIG. 14 and described next.

The logic of FIG. 14 illustrates exemplary logic for performing FiO₂ SetDetermination in accordance with the present invention. SpO₂ Read valuesare classified into SpO₂ levels: normoxemia, hyperoxemia and hypoxemia.The updated FiO₂ Set value is calculated in different ways according tothe oxygenation range (SpO₂ level) that SpO₂ Read is currently in. Thelogic of FIG. 14 moves from a start block to decision block 450 where atest is made to determine the SpO₂ level. Appropriate processing is thenperformed based on the SpO₂ level. If the SpO₂ level indicateshypoxemia, the logic moves to block 452 where FiO₂ Set Determination inHypoxemia is performed as illustrated in detail in FIG. 15 and describedbelow. If the SpO₂ level indicates hyperoxemia, the logic moves to block454 where FiO₂ Set Determination in Hyperoxemia is performed asillustrated in detail in FIG. 16 and described below. If the SpO₂ levelindicates normoxemia, the logic moves to block 456 where FiO₂ SetDetermination in Normoxemia is performed as illustrated in detail inFIG. 17 and described below.

FIG. 15 illustrates exemplary logic for performing FiO₂ SetDetermination in Hypoxemia in accordance with the present invention.When hypoxemia occurs, the algorithm of the present invention determinesan initial increase in FiO₂ Set of significant magnitude sufficient tooffset the initial cascade effect of hypoxia as well as any lag time inchanging the inspired O₂ concentration by the delivery mode. As soon asthe SpO₂ Read value drops below the low limit of the target range set bythe user and remains for the minimum required time (e.g., threeseconds), the algorithm increases FiO₂ Set (occurring once for everytime it drops to the hypoxemic range). Simultaneously, if the calculatedSpO₂ slope is negative (trend is a decrease in SpO₂), FiO₂ Set isincreased in direct proportion to the speed of change (e.g., everysecond). To prevent overshoot because of the system and intrinsic delaysfrom the time inspired O₂ concentration changes until SpO₂ returns tonormoxemia, FiO₂ Set is weaned down in steps proportional to the actualFiO₂ Set (e.g., every second) as soon as the SpO₂ shows signs ofrecovery (positive slope). Weaning (reduction) of the excess inspiredoxygen concentration prevents arterial unnecessary supplemental oxygenexposure while oxygen saturation levels are in the normal range. FiO₂ isnot weaned down below the basal level. Weaning is halted if the SpO₂slope is flat or negative. If SpO₂ remains in the hypoxemia range anddoes not show signs of recovery (slope is flat or negative), successiveincrements of magnitude proportional to the difference between thetarget range and the SpO₂ Read are made. The intervals at which thesesteps occur vary in duration in inverse proportion to the degree ofhypoxemia (a lower SpO₂ Read will cause larger increments at shorterintervals).

The logic of FIG. 15 moves from a start block to decision block 460where a test is made to determine if conditions for initial FiO₂increase are present. In exemplary embodiments, conditions for initialFiO₂ increase when SpO₂ has just dropped below range are:

SpO₂ signal lost and recovered in Hypoxemia

OR

SpO₂ in Hypoxemia 85-Low Limit and previously SpO₂ in Normoxemia

OR

SpO₂ in Hypoxemia 75-85% and previously SpO₂ in Normoxemia or SpO₂ inHypoxemia 85-Low Limit

OR

SpO₂ in Hypoxemia less than 75% and previously SpO₂ in Normoxemia orSpO₂ in Hypoxemia 85-Low Limit or SpO₂ in Hypoxemia 75-85%.

If conditions for initial FiO₂ increase (such as those described above)are present, the logic moves to block 462 where FiO₂ Set is increasedusing the following equation:

FiO₂ Set=FiO₂ Set+6.0*(SpO₂ Low Limit−SpO₂ Read)*(FiO₂ Base/100)  (1)

Next, the logic moves to decision block 464 where a test is made todetermine if the slope is negative. If so, the logic moves to block 466where FiO₂ Set is increased in direct proportion to the speed of changeusing the following equation:

FiO₂ Set=FiO₂ Set+3.0*absolute (SpO₂ Slope)*(FiO₂ Base/100)  (2)

The logic then moves to decision block 468 where a test is made todetermine whether conditions for FiO₂ weaning are present. In exemplaryembodiments, conditions for FiO₂ weaning when SpO₂ begins to recoverinclude:

SpO₂ Read>75

AND

SpO₂ Slope>0

AND

FiO₂ Set>FiO₂ Base

AND

SpO₂ Signal OK Counter>SpO₂ OK Time Min (e.g., five seconds).

If conditions for weaning are present, the logic moves to block 470where FiO₂ Set is decreased using the following equation:

FiO₂ Set=FiO₂ Set−6.0*absolute (SpO₂ Slope)*(FiO₂ Set/100)  (3)

Next, the logic moves to decision block 472 where a test is made todetermine if FiO₂ Set is less than FiO₂ Base. If so, the logic moves toblock 474 where FiO₂ Set is set to FiO₂ Base. The logic then moves toblock 476 where Hypoxemia Adjust Interval Counter (in seconds) isincremented and Hypoxemia Adjust Interval is calculated using thefollowing equation:

Hypoxemia Adjust Interval=SpO₂ Read−65  (4)

The Hypoxemia Adjust Interval is limited to a specific range. The logicmoves to decision block 478 where a test is made to determine if theHypoxemia Adjust Interval is greater than the High Limit (SpO₂ LowAdjust Interval High Limit), for example, 40 seconds. If so, the logicmoves to block 480 where the Hypoxemia Adjust Interval is set to theHigh Limit, e.g., 40 seconds. The logic proceeds to decision block 482where a test is made to determine if the Hypoxemia Adjust Interval isless than the Low Limit (SpO₂ Low Adjust Interval Low Limit), forexample, 5 seconds. If so, the logic moves to block 484 where theHypoxemia Adjust Interval is set to the Low Limit, e.g., five seconds.

Next, a determination must be made as to whether it is time to adjust.The logic moves to decision block 486 where a test is made to determineif SpO₂ Slope is negative or zero and Hypoxemia Adjust Interval Counteris greater than or equal to Hypoxemia Adjust Interval. If so, the logicmoves to block 488 where Hypoxemia Adjust Interval Counter is reset tozero and FiO₂ Set is increased using the following equation:

FiO₂ Set=FiO₂ Set+3.0*(SpO₂ Low Limit−SpO₂ Read)*(FiO₂ Base/100)  (5)

The logic of FIG. 15 then ends and processing returns to FIG. 14.

FIG. 16 illustrates exemplary logic for performing FiO₂ SetDetermination in Hyperoxemia in accordance with the present invention.When hyperoxemia occurs, the system determines an appropriate initialdecrease of FiO₂ Set that is of significant magnitude. This reduction issmaller than that occurring initially with hypoxemia. As soon as SpO₂Read exceeds the limit of the target range set by the user and remainsfor the minimum required time within each range (e.g., three seconds),the algorithm decreases FiO₂ Set (once each time it reaches thehyperoxemic range). If SpO₂ signal was lost (OUT) and when recoveredshows values in hyperoxemia, the FiO₂ Set value is changed to the FiO₂Set value that was last recorded when SpO₂ dropped out. The new FiO₂ Setvalue should not exceed the FiO₂ Base level. When SpO₂ Read values reachthe hyperoxemic range, the algorithm allows for weaning of FiO₂ Setduring a wean interval (e.g., 30 seconds) occurring every second only ifthe current FiO₂ Set value is above the FiO₂ Base level or the SpO₂Slope is positive (more hyperoxemic). Under both circumstances the FiO₂Set value is weaned down only to the FiO₂ Base level. Once SpO₂ Readvalues have been in the hyperoxemic range longer than the initial weaninterval (e.g., 30 seconds), the current FiO₂ Set value is decreased inproportion to a positive SpO₂ Slope (every second, but smalleradjustments). FiO₂ Set value can be lowered below the FiO₂ Base level.After the initial wean interval (e.g., 30 seconds) has elapsed, FiO₂ Setvalue is decreased at steps of magnitude proportional to the differencebetween the hyperoxemic SpO₂ Read value and the target SpO₂ range andthe FiO₂ Base level. These adjustments, however, are smaller than thoseobserved during hypoxemia. The intervals at which these adjustmentsoccur are in inverse proportion to the degree of hyperoxemia. Therefore,an SpO₂ reading average of 97% will result in a smaller reduction than a99% reading and at longer intervals. These reductions can lower FiO₂ Setbelow FiO₂ Base level.

The logic of FIG. 16 moves from a start block to decision block 490where a test is made to determine if conditions for initial FiO₂decrease are present. In exemplary embodiments of the invention,conditions for initial FiO₂ decrease when SpO₂ has just crossed the highlimit of the target range are:

SpO₂ Hyperoxemia Counter=Min Time in Range (e.g., three seconds)

AND

SpO₂ previously in Normoxemia OR SpO₂ Previously in Hypoxemia

AND

FiO₂ Set>FiO₂ Base.

If conditions for initial FiO₂ decrease are present, the logic moves toblock 492 where FiO₂ Set is decreased using the following equation:

FiO₂ Set=FiO₂ Set−3.0*(SpO₂ Read−SpO₂ High Limit)*(FiO₂ Base/100)  (6)

Next, the logic moves to decision block 494 where a test is made todetermine if FiO₂ Set is less than FiO₂ Base. If so, the logic moves toblock 496 where FiO₂ Set is set to FiO₂ Base. Next, the logic moves todecision block 498 where a test is made to determine if SpO₂ Signal wasOUT and recovered in hyperoxemia. If so, the logic moves from decisionblock 498 to decision block 500 where a test is made to determine ifFiO₂ Set is greater than FiO₂ Set Last Before Signal Lost. If theoutcomes of decision blocks 498 and 500 are both true, the logic movesto block 502 where FiO₂ Set is set to FiO₂ Set Last Before Signal Lost.If the outcome of decision block 498 is true, the logic proceeds todecision block 504 where a test is made to determine if FiO₂ Set isgreater than FiO₂ Base. If so, the logic moves to block 506 where FiO₂Set is set to FiO₂ Base.

Regardless of the outcome of decision block 498, the logic proceeds todecision block 508 where a test is made to determine if SpO₂ HyperoxemiaCounter is less than or equal to Wean Interval (e.g., 30 seconds). Ifso, the logic moves to decision block 510 where a test is made todetermine if FiO₂ Set is greater than FiO₂ Base. If so, the logic movesto block 512 where FiO₂ Set is decreased according to the followingequation:

FiO₂ Set=FiO₂ Set−6.0*(SpO₂ Read−SpO₂ High Limit)*(FiO₂ Set/100)  (7)

The logic proceeds to decision block 514 where a test is made todetermine if SpO₂ Slope is positive (e.g., greater than zero). If SpO₂Slope is positive, the logic moves to block 516 where FiO₂ is decreasedusing the following equation:

FiO₂ Set=FiO₂ Set−3.0*absolute (SpO₂ Slope)*(FiO₂ Set/100)  (8)

Regardless of the outcome of decision block 514, the logic proceeds todecision block 518 where a test is made to determine if FiO₂ Set is lessthan FiO₂ Base. If so, the logic moves to block 520 where FiO₂ Set isset to FiO₂ Base. Regardless of the outcome of decision blocks 508, 510,514 and 518, the logic proceeds to decision block 522 where a test ismade to determine if SpO₂ Hyperoxemia Counter is greater than WeanInterval (e.g., 30 seconds). If so, the logic moves to decision block524 where a test is made to determine if SpO₂ Slope is positive. If so,the logic moves to block 526 where FiO₂ Set is decreased using thefollowing equation:

FiO₂ Set=FiO₂ Set−absolute (SpO₂ Slope)*(FiO₂ Base/100)  (9)

Regardless of the outcome of decision block 524, the logic proceeds toblock 528 where Hyperoxemia Adjust Interval Counter is incremented andHyperoxemia Adjust Interval is calculated using the following equation:

Hyperoxemia Adjust Interval=40.0−3.0*(SpO₂ Read−SpO₂ High Limit)  (10)

Hyperoxemia Adjust Interval is limited to a specific range. The logicproceeds to decision block 529 where a test is made to determine ifHyperoxemia Adjust Interval is greater than SpO₂ High Adjust IntervalHigh Limit (e.g., 60 seconds). If so, the logic moves to block 530 whereHyperoxemia Adjust Interval is set to SpO₂ High Adjust Interval HighLimit, (e.g., 60 seconds). Next, the logic moves to decision block 531where a test is made to determine if Hyperoxemia Adjust Interval is lessthan SpO₂ High Adjust Interval Low Limit (e.g., 20 seconds). If so, thelogic moves to block 532 where Hyperoxemia Adjust Interval is set toSpO₂ High Adjust Interval Low Limit (e.g., 20 seconds). The logic thenmoves to decision block 534 where a test is made to determine whether itis time to adjust (i.e., whether the Hyperoxemia Adjust Interval Counteris greater than or equal to Hyperoxemia Adjust Interval). If it is timeto adjust, the logic moves to block 536 where SpO₂ High Adjust Level iscalculated as the average of the SpO₂ over the Hyperoxemia AdjustInterval. Next, the logic moves to block 538 where Hyperoxemia AdjustInterval Counter is reset to zero and FiO₂ is decreased based on thefollowing equation:

FiO₂ Set=FiO₂ Set−2.0*(SpO₂ High Adjust Level−SpO₂ High Limit)*(FiO₂Base/100)  (11)

The logic of FIG. 16 then ends and processing returns to FIG. 14.

FIG. 17 illustrates exemplary logic for performing FiO₂ SetDetermination in Normoxemia in accordance with the present invention. Ifthe SpO₂ signal was lost (OUT) and when recovered it shows values innormoxemia and FiO₂ Set is greater than the FiO₂ Set value that was lastrecorded when SpO₂ dropped out, the FiO₂ Set value is changed to thatrecorded value. This new FiO₂ Set value should not exceed the FiO₂ Baselevel. When SpO₂ Read values reach the normoxemic range after recoveringfrom hypoxemia while the current FiO₂ Set value is above the FiO₂ SetBase level and the SpO₂ Slope does not show a decrease (is notnegative), the algorithm decreases the FiO₂ Set value (one time). TheFiO₂ Set value is not weaned down below the FiO₂ Base level. When SpO₂Read values fall in the lower half of the normoxemic range (between thelow limit of the target range of normoxemia and the default mid-valueSpO₂ Base) and it shows signs of worsening (negative SpO₂ Slope), theFiO₂ Set value is increased in proportion to SpO₂ slope and the FiO₂Base level. This is done to avert any onset of hypoxemia. When SpO₂ Readvalues reach the normoxemic range, the algorithm allows for weaning ofFiO₂ Set every second during a wean interval (e.g., 45 seconds). Thisweaning occurs if the current FiO₂ Set value is above the FiO₂ Baselevel and the SpO₂ Slope is positive (towards hyperoxemia). Thereduction is proportional to the slope. If the current FiO₂ Set value isabove the FiO₂ Base level but the SpO₂ Slope is flat, the reduction isproportional only to the actual FiO₂ Set value. Under both conditions,the FiO₂ Set value is not weaned down below the FiO₂ Base level.

Once SpO₂ read values have been in the normoxemic range longer thaninitial wean interval (e.g., 45 seconds) and the current FiO₂ Set valueis greater than the FiO₂ Base level and there is a positive SpO₂ Slope,the FiO₂ Set value is decreased (every second) in proportion to theslope and actual FiO₂ Set value. FiO₂ Set value is not weaned down belowthe FiO₂ Base level. After the initial wean interval (e.g., 45 seconds)has elapsed and the FiO₂ Set value is less than the FiO₂ Base level andthere is a negative SpO₂ Slope and the FiO₂ Set value is increased inproportion to the SpO₂ Slope and the current FiO₂ Set level. Thisincrease cannot cause the FiO₂ Set level to be above the FiO₂ Baselevel.

Once SpO₂ Read values have been in the normoxemic range longer than theinitial wean interval (e.g., 45 seconds) or previous SpO₂ level washyperoxemia or normoxemia and SpO₂ was lost and recovered (even beforethe initial wean interval of 45 seconds in both cases) the algorithmaverages SpO₂ Read values. The duration of these averaging intervals isin proportion to the departure of SpO₂ Read from the mid-point ofnormoxemia (e.g., SpO₂ Base=94%). If the average SpO₂ adjust valueexceeds the SpO₂ Base level (e.g., 94%) and FiO₂ Set value is greaterthan the FiO₂ Base level, FiO₂ Set value is decreased in proportion tothe difference of averaged to base SpO₂ and FiO₂ Base level. If theaveraged SpO₂ adjust value is below the SpO₂ Base level (e.g., 94%) andFiO₂ Set value is less than the FiO₂ Base level, FiO₂ Set value isincreased in proportion to the difference of averaged to base SpO₂ andFiO₂ Base level. The magnitude of the FiO₂ Set change is larger when theaverage SpO₂ is above the mid SpO₂ Base and FiO₂ Set is above FiO₂ Basethan when the average SpO₂ is below the mid SpO₂ Base and FiO₂ Set isbelow FiO₂ Base. The purpose of this difference is to allow lower O₂,provided that SpO₂ is within normoxemia.

The logic of FIG. 17 moves from a start block to decision block 540where a test is made to determine if SpO₂ Signal was OUT and recoveredin Normoxemia. If so, the logic moves to decision block 542 where a testis made to determine if FiO₂ Set is greater than FiO₂ Before SignalLost. If so, the logic moves to block 544 where FiO₂ Set is set to FiO₂Before Signal Lost. Regardless of the outcome of decision block 542, thelogic proceeds to decision block 546 where a test is made to determineif FiO₂ Set is greater than FiO₂ Base. If so, the logic proceeds toblock 548 where FiO₂ Set is set to FiO₂ Base. Regardless of the outcomeof decision block 540, the logic proceeds to decision block 550 where atest is made to determine if conditions for initial FiO₂ decrease arepresent. In exemplary embodiments of the invention, conditions forinitial FiO₂ decrease when SpO₂ just crossed the low limit of the targetrange recovering from hypoxemia are:

SpO₂ Normoxemia Counter=Min Time in Range (e.g., 3 seconds)

AND

SpO₂ was previously in Hypoxemia

AND

FiO₂ Set>FiO₂ Base

AND

SpO₂ Slope is flat (zero) or positive.

If conditions for initial FiO₂ decrease are present, the logic movesfrom decision block 550 to block 552 where FiO₂ Set is decreased usingthe following equation:

FiO₂ Set=FiO₂ Set−6.0*(SpO₂ Read−SpO₂ Low Limit)*(FiO₂ Set/100)  (12)

The logic then moves to decision block 554 where a test is made todetermine if FiO₂ Set is less than FiO₂ Base. If so, the logic moves toblock 556 where FiO₂ Set is set to FiO₂ Base. Regardless of the outcomeof decision block 550, the logic proceeds to decision block 558 where atest is made to determine if SpO₂ Read is less than SpO₂ Base and SpO₂Slope is negative. If so, the logic moves to block 560 where FiO₂ Set isincreased according to the following equation:

FiO₂ Set=FiO₂ Set+3.0*absolute (SpO₂ Slope)*(FiO₂ Base/100)  (13)

Regardless of the outcome of decision block 558, the logic proceeds todecision block 562 where a test is made to determine if SpO₂ NormoxemiaCounter is less than or equal to Wean interval (e.g., 45 seconds) If so,the logic moves to decision block 564 where a test is made to determineif FiO₂ Set is greater than FiO₂ Base. If so, FiO₂ may be decreasedbased on the slope. If SpO₂ Slope is positive (yes in decision block566), the logic moves to block 568 where FiO₂ Set is decreased using thefollowing equation:

FiO₂ Set=FiO₂ Set−3.0*absolute (SpO₂ Slope)*(FiO₂ Set/100)  (14)

If SpO₂ Slope is flat, i.e., zero (yes in decision block 570), the logicmoves to block 572 where FiO₂ is decreased using the following equation:

FiO₂ Set=FiO₂ Set−3.0*(FiO₂ Set/100)  (15)

The logic then moves to decision block 574 where a test is made todetermine if FiO₂ Set is less than FiO₂ Base. If so, the logic moves toblock 576 where FiO₂ Set is set to FiO₂ Base.

Regardless of the outcome of decision block 562, the logic proceeds todecision block 578 where a test is made to determine if SpO₂ NormoxemiaCounter is greater than Wean Interval (e.g., 45 seconds). If so, thelogic moves to decision block 580 where a test is made to determine ifSpO₂ Slope is greater than zero and FiO₂ Set is greater than FiO₂ Base.If so, the logic moves to block 582 where FiO₂ Set is decreased usingthe following equation:

FiO₂ Set=FiO₂ Set−3.0*absolute (SpO₂ Slope)*(FiO₂ Set/100)  (16)

The logic then moves to decision block 584 where a test is made todetermine if FiO₂ Set is less than FiO₂ Base. If so, the logic moves toblock 586 where FiO₂ Set is set to FiO₂ Base.

Regardless of the outcome of decision block 578, the logic proceeds todecision block 588 where a test is made to determine if SpO₂ NormoxemiaCounter is greater than Wean Interval (e.g., 45 seconds). If so, thelogic moves to decision block 590 where a test is made to determine ifSpO₂ Slope is greater than zero and FiO₂ Set is less than FiO₂ Base. Ifso, the logic moves to block 592 where FiO₂ Set is increased using thefollowing equation:

FiO₂ Set=FiO₂ Set+3.0*absolute (SpO₂ Slope)*(FiO₂ Set/100)  (17)

The logic then moves to decision block 594 where a test is made todetermine if FiO₂ Set is greater than FiO₂ Base. If so, the logic movesto block 596 where FiO₂ Set is set to FiO₂ Base.

Regardless of the outcome of decision block 588, the logic proceeds todecision block 598 where a test is made to determine if SpO₂ Counter isgreater than Wean interval (e.g. 45 seconds) or if the previous level isHyperoxemia or Normoxemia. If so, the logic moves to block 600 whereNormoxemia Adjust Interval Counter is incremented and Normoxemia AdjustLevel is calculated using the following equation:

Normoxemia Adjust Interval=60.0−4.0*absolute (SpO₂ Read−SpO₂ Base)  (18)

Normoxemia Adjust Interval is limited to a specific range. The logicmoves to decision block 601 where a test is made to determine ifNormoxemia Adjust Interval is greater than SpO₂ Normal Adjust IntervalHigh Limit (e.g., 60 seconds). If so, the logic moves to block 602 whereNormoxemia Adjust Interval is set to SpO₂ Normal Adjust Interval HighLimit (e.g., 60 seconds). Next, the logic moves to decision block 604where a test is made to determine if Normoxemia Adjust Interval is lessthan SpO₂ Normal Adjust Interval Low Limit (e.g., 20 seconds). If so,the logic moves to block 606 where Normoxemia Adjust Interval is set toSpO₂ Normal Adjust Interval Low Limit (e.g., 20 seconds). The logic thenmoves to decision block 608 where a test is made to determine if it istime to adjust (i.e., Normoxemia Adjust Interval Counter is greater thanor equal to Normoxemia Adjust Interval). If so, the logic moves to block610 where SpO₂ Normoxemia Adjust Level is calculated as the average ofthe SpO₂ over the Normoxemia Interval. Next, the logic moves to decisionblock 612 where a test is made to determine if SpO₂ Adjust Level isgreater than SpO₂ Base AND SpO₂ Slope is greater than or equal to zeroAND FiO₂ Set is greater than FiO₂ Base. If so, the logic moves to block614 where Normoxemia Adjust Interval Counter is reset to zero and FiO₂Set is decreased using the following equation:

FiO₂ Set=FiO₂ Set−2.0*(SpO₂ Adjust Level−SpO₂ Base)*(FiO₂Base/100)  (19)

The logic then moves to decision block 616 where a test is made todetermine if SpO₂ Adjust Level is less than SpO₂ Base AND SpO₂ Slope isless than or equal to zero AND FiO₂ Set is less than FiO₂ Base. If so,the logic moves to block 618 where FiO₂ Set is increased using thefollowing equation:

FiO₂ Set=FiO₂ Set+(SpO₂ Base−SpO₂ Adjust Level)*(FiO₂ Base/100)  (20)

The logic of FIG. 17 then ends and processing returns to FIG. 14.

Returning to FIG. 14, after the appropriate processing has beenperformed based on the SpO₂ level (hypoxemia in block 452, hyperoxemiain block 454 or normoxemia in block 456), the logic of FIG. 14 ends andprocessing returns to FIG. 8.

Returning to FIG. 8, if closed-loop control is not enabled (no indecision block 272), the logic moves to block 274 where FiO₂ Set is setto FiO₂ Backup. Next, the logic moves to block 276 where the user isalerted. Regardless of whether closed-loop control is enabled (decisionblock 272), the logic proceeds to decision block 278 where a test ismade to determine if FiO₂ Base Calc is enabled. If so, the logic movesto block 280 where FiO₂ Base Determination is performed as shown indetail in FIG. 18 and described next.

FIG. 18 illustrates in detail exemplary logic for performing FiO₂ BaseDetermination in accordance with the present invention. When FiO₂ BaseCalc is enabled, the algorithm automatically updates the basal oxygenwhen specific conditions are met as shown in FIG. 18. In exemplaryembodiments, when FiO₂ Base Calc is enabled by the user, the algorithmaverages five minutes (not necessarily continuous) worth of FiO₂ Setvalues occurring during specific conditions. The calculated average forFiO₂ Base is limited to +/−10% of the current FiO₂ Base value. The newlycalculated FiO₂ Base value is averaged with the current FiO₂. Basevalue. The resulting value is the new FiO₂ Base value. The averageinterval duration is five minutes. This parameter can be modifiedaccording to the patient condition, either as a system default, by theuser or automatically.

The logic of FIG. 18 moves from a start block to decision block 620where a test is made to determine if there are conditions for FiO₂ Base.Exemplary conditions for inclusion of current FiO₂ Set value in FiO₂base determination are:

SpO₂ in Normoxemia AND SpO₂ Normoxemia Counter>SpO₂ Normoxemia Base Min(e.g., 30 sec)

OR

SpO₂ in Hyperoxemia AND FiO₂ Set=FiO₂ Min AND FiO₂ Min Counter>FiO₂ BaseMin (e.g., 30 sec)

OR

SpO₂ in Hypoxemia AND FiO₂ Set=FiO₂ Max AND FiO₂ Max Counter>FiO₂ BaseMax (e.g., 60 sec)

OR

SpO₂ in Hyperoxemia AND FiO₂ Set<FiO₂ Base AND SpO₂ HyperoxemiaCounter>SpO₂ High wean interval (e.g., 30 sec)

OR

SpO₂ in Hypoxemia AND FiO₂ Set>FiO₂ Base AND SpO₂ Hypoxemia Counter>SpO₂Low Alarm Limit (e.g., 60 sec).

In exemplary embodiments, at least one of the following conditions mustbe met to include a specific FiO₂ value in the calculation of FiO₂ base:

(1) Current SpO₂ should be in normoxemia and SpO₂ has been in normoxemiafor at last 30 seconds (base min);

(2) Current SpO₂ should be in hyperoxemia and FiO₂ is at the FiO₂minimum level and FiO₂ has been at the minimum FiO₂ level for at least30 seconds (base min);

(3) Current SpO₂ should be in hypoxemia and FiO₂ is at the FiO₂ maxlevel and FiO₂ has been at the max FiO₂ level for at least 60 seconds(base max);

(4) Current SpO₂ in Hyperoxemia and current FiO₂ is below FiO₂ base andSpO₂ has been in hyperoxemia longer than 30 seconds; or

(5) Current SpO₂ in Hypoxemia and current FiO₂ is above FiO₂ Base andSpO₂ has been in hypoxemia longer than 60 seconds.

If conditions for FiO₂ base exist, the logic moves to block 622 whereFiO₂ Base Counter is incremented using the following equation:

FiO₂ Base=FiO₂ Base+FiO₂ Set  (21)

Regardless of the outcome of decision block 620, the logic proceeds todecision block 624 where a test is made to determine if there are 5minutes (or whatever value is specified) of FiO₂ data. If so, the logicmoves to block 626 where FiO₂ Base is averaged and set to be within thespecified limit (e.g., +/−10%) of the current FiO₂ Base. FiO₂ BaseCounter is reset to zero. The logic then moves to block 628 where thenew and current FiO₂ Base values are averaged and set to be within theMax and Min settings. The logic of FIG. 18 then ends and processingreturns to FIG. 8.

Returning to FIG. 8, regardless of whether FiO₂ Base Calc is enabled(decision block 278), the logic proceeds to block 282 where FiO₂ Setchecking is performed as shown in detail in FIG. 19 and described next.

FIG. 19 illustrates exemplary logic for performing FiO₂ Set checking inaccordance with the present invention. The logic of FIG. 19 ensures thatFiO₂ Set is within the allowable range. If it is determined in decisionblock 630 that FiO₂ Set is greater than FiO₂ Max, FiO₂ Set is set toFiO₂ Max in block 632. If it is determined in decision block 634 thatFiO₂ Set is less than FiO₂ Min, FiO₂ Set is set to FiO₂ Min in block636. The logic of FIG. 19 then ends and processing returns to FIG. 8.

Returning to FIG. 8, the logic proceeds to block 284 where FiO₂Base/Backup checking is performed as shown in detail in FIG. 20 anddescribed next.

FIG. 20 illustrates exemplary logic for performing FiO₂ Base/Backupchecking in accordance with the present invention. New FiO₂ Base andBackup values determined by the algorithm or set by the user are checkedto ensure that they fall within the minimum and maximum ranges. If theydon't, the user is alerted. In exemplary embodiments, if the value isnot within acceptable limits, the value is set to an appropriate value.The logic of FIG. 20 alerts the user (block 642) if it is determinedthat FiO₂ Base is greater than 5% or if FiO₂ Base is equal to FiO₂ Maxas determined in decision block 640.

Similarly, if it is determined in decision block 644 that FiO₂ Backup isgreater than 50% or FiO₂ Backup is equal to FiO₂ Max, the user isalerted in block 646. The logic of FIG. 20 then ends and processingreturns to FIG. 8.

Returning to FIG. 8, the logic then proceeds to block 286 where FiO₂ SetOutput Control to Mixer. Once the new FiO₂ value is confirmed, theupdated FiO₂ Set value should be passed to the output routine thatcontrols the air-oxygen blender. In exemplary embodiments, the outputroutine outputs a specific voltage to drive an external blender. Invarious embodiments, additional monitoring is provided to ensure correctmixing by monitoring data from a built-in FiO₂ analyzer. The logic ofFIG. 8 then ends and processing returns to FIG. 6.

FIG. 21 illustrates an exemplary graphical user interface 700. Theexemplary user interface 700 shown in FIG. 21 displays SpO₂ and FiO₂parameters over a period of time. In an exemplary embodiment, the lastfive minutes and thirty minutes of data are displayed simultaneously. Itwill be appreciated that various other user displays are possible, forexample in alternate embodiments, the user can select the timeinterval(s) for display data. The user interface also allows the user tointeractively change various parameters. More specifically, theexemplary user interface 700 shown in FIG. 21 displays:

the current SpO₂ value read by the oximeter 702;

five minutes of tracing of SpO₂ at 60 second divisions 704;

the current FiO₂ set at the blender 706;

five minutes of tracing of FiO₂ Set values at 60 second divisions 708;

30 minutes of tracing of SpO₂ Read and FiO₂ Set values at five minutedivisions 710;

the SpO₂ level (e.g., 0=normoxemia, 1=hypoxemia and 2=hyperoxemia) 712;

the previous SpO₂ level 714;

the calculated SpO₂ Slope 716;

the calculated SpO₂ trend based on SpO₂ slope magnitude 718;

an SpO₂ high counter (hyperoxemia) 720;

an SpO₂ normal counter (normoxemia) 722;

an SpO₂ low counter (hypoxemia) 724;

is an SpO₂ low counter for the range of 85%−the low SpO₂ limit 726;

an SpO₂ low counter for the range of 75%-85% 728;

an SpO₂ low counter for the range of less than 75% 730;

an SpO₂ High Limit of the target range 732;

an SpO₂ Low Limit of the target range 734;

an SpO₂ signal OK counter 736;

an SpO₂ signal OUT counter 738;

a control button 744 which is the main switch to start closed loopadjustments (i.e., when OFF, FiO₂ is at backup level);

a record button 746 which is used to record certain parameters (e.g.,write to a file);

an FiO₂ Base Cal switch 750 which is switched on and off to calculatethe basal oxygen requirement;

the FiO₂ Base value 752;

a FiO₂ Base counter 754 which is used when FiO₂ Base Calc is enabled;

an FiO₂ backup value 756; and

an FiO₂ Minimum level 758.

As discussed earlier, the user can modify various parameters at anytime. For example, in the exemplary embodiment shown in FIG. 21, theuser can use the arrows to modify the values for the associatedparameters.

Additional modifications and improvements of the present invention mayalso be apparent to those of ordinary skill in the art. Thus, theparticular parts described and illustrated herein is intended torepresent only one embodiment of the present invention, and is notintended to serve as limitations of alternative devices within thespirit and scope of the invention.

What is claimed is:
 1. A computer-controlled system for automaticallyadjusting fractionally inspired oxygen delivery to a patient, saidsystem comprising: a. a device for determining arterial hemoglobinoxygen saturation for the patient, wherein said device outputs a signalspecifying said arterial hemoglobin oxygen saturation; b. a device fordelivering the fractionally inspired oxygen to the patient; and c. acomputer algorithm, wherein said computer algorithm determines anappropriate fractionally inspired oxygen value in response to the signalspecifying said arterial hemoglobin oxygen saturation and communicatesthe appropriate fractionally inspired oxygen value to the device fordelivering the fractionally inspired oxygen to the patient, wherein whenthe signal is unavailable after a predetermined wait time, the computeralgorithm further includes a backup function to lock the fractionallyinspired oxygen value at the higher of a backup level and a currentinspired oxygen value until the signal is available.
 2. Thecomputer-controlled system according to claim 1, wherein the device fordetermining arterial hemoglobin oxygen saturation for the patient is apulse oximeter.
 3. The computer-controlled system according to claim 1,wherein the device for delivering the fractionally inspired oxygen tothe patient is a mechanical ventilator.
 4. The computer-controlledsystem according to claim 1, further comprising an alert deviceactivated when an episode of hyperoxemia or hypoxemia occurs, when theepisode lasts more than a predetermined period of time in spite that anadjustment of the fractional inspired oxygen value has been made, andthe adjustment sets the fractional inspired oxygen value at a presetlevel.
 5. The computer-controlled system according to claim 1, furthercomprising an alert device activated when the signal specifying saidarterial hemoglobin oxygen saturation is lost.